package beans;

import control.ManagementController;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import model.Projetista;
import javax.faces.context.FacesContext;

/**
 * Classe controladora para o módulo relacionado ao dicionário e elementos do MER
 * @author Eduardo, Maylon e Kamilla
 */
@ManagedBean
@ViewScoped
public class ProjetistaBean implements Serializable{
     private List<Projetista> projetistas;
     private Projetista projetista;
     private ManagementController control;
     
  
    public ProjetistaBean() {
        control = new ManagementController();
        this.atualizarProjetistas();
        this.criar();
    }


    public Projetista getProjetista() {
        return projetista;
    }

    public void setProjetista(Projetista projetista) {
        this.projetista = projetista;
    }

    public List<Projetista> getProjetistas() {
        return projetistas;
    }

    public void setProjetistas(List<Projetista> projetistas) {
        this.projetistas = projetistas;
    }

    
    public final void criar()  {
        setProjetista(new Projetista());
    }
    
    public void salvar() {
        
        control.salvarProjetista(projetista);
        atualizarProjetistas();
        this.criar();
    }

    
    public void excluir(){
        control.excluirProjetista(projetista);
        atualizarProjetistas();
    }

    /**
     * Atualiza a lista de tipos de admissão.
     */
    private void atualizarProjetistas() {
        projetistas = control.recarregarProjetista();
        /*if(projetistas!=null && !projetistas.isEmpty()){
            projetista = projetistas.get(0);
        }*/
    }
    
    
    public String login(){
        String verificacao = control.efetuarLogin(projetista.getEMail(), projetista.getSenha());
        if(verificacao.equals("sucesso")){
            projetista = control.recuperarProjetistaDoBancoDados(projetista.getEMail()) ;
            //Se o logimn for válido, colocamos o projetista na sessão para posteriormente utilizar os seus dados.
            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("projetista", projetista); 
        }
        return verificacao;

        
    }
   
}
